Skip to content

FAT workstation convergence: architecture freeze and canonical shell staging - #296

Draft
masarray wants to merge 86 commits into
feat/native-fat-workspacefrom
fix/fat-workstation-convergence
Draft

FAT workstation convergence: architecture freeze and canonical shell staging#296
masarray wants to merge 86 commits into
feat/native-fat-workspacefrom
fix/fat-workstation-convergence

Conversation

@masarray

@masarray masarray commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Purpose

Stage the professional Engineering-integrated FAT convergence without destabilizing PR #290's current known-good baseline.

This PR remains intentionally stacked on feat/native-fat-workspace (PR #290), not main. It is the protected staging lane for the architecture cleanup and field gates.

Current implementation state

  • canonical seven-destination Engineering shell with permanent FAT destination
  • FAT bootstrap reuses the already-parsed Engineering SCL/static DataSet authority
  • Engineering remains the single parsed SCL/live-value authority; FAT is an evidence/session projection
  • Start FAT preflight now self-heals only a proven generated scl-manual-* shadow when an authoritative Static DataSet row resolves to the exact same live IEC 61850 reference
  • restored/manual TEST preference, FAT disposition and evidence are preserved; only duplicate shared-workspace ownership is retired
  • truly ambiguous non-manual duplicates still fail closed with the live IEC reference included in the error
  • same-source continuation preserves saved FAT progress without replacing the fresh Engineering model
  • source staging reuses an already-verified content-addressed staged SCL copy instead of rewriting identical bytes on every FAT-tab entry
  • no second navigation owner / launcher parity shim is reintroduced

Protected behavior

No FAT change in this staging branch is allowed to introduce Hybrid/cyclic MMS polling for static DataSet FAT, restart the shared Engineering acquisition session, silently duplicate static DataSet members, weaken evidence/source integrity, or bypass strict duplicate-live-reference preflight.

CI gate — GREEN on current head

Head: f901bb31c9a59ee0796afc86a8679b8dd6da1f22

  • Build ARSAS #2578: success
  • full application regression step: success
  • Validate IO List Testing #1131: success
  • Validate SV evidence bundles #1580: success
  • win-x64 portable single-EXE publish: success
  • portable EXE smoke test: success
  • field regression covers the exact restored scl-manual-* live-reference shadow class
  • regression also proves a true non-manual duplicate remains blocked

Remaining gate — FIELD

Use the exact ARSAS-win-x64-portable-single-exe artifact from Build ARSAS #2578 (ARSAS-1.6.35-win-x64-portable.exe) and verify:

  • reproduce the same IED/SCL used by the failed 39997457 field candidate
  • Start FAT must no longer reject the scl-de... + scl-manual-... pair when both resolve to the same proven live leaf
  • a genuinely ambiguous duplicate mapping must still be rejected
  • FAT tab first/repeated entry latency remains acceptable
  • Engineering -> FAT does not reconnect, enable Hybrid or start cyclic MMS polling
  • static DataSet row count, live value, quality, relay timestamp, Value 1 / Value 2 capture and evidence remain correct
  • Report Preview/export remains unchanged and correct

Keep this PR draft and do not merge into PR #290 until this exact field candidate passes the field gate.

masarray and others added 30 commits September 10, 2026 06:42

Copy link
Copy Markdown
Owner Author

Final code/CI gate for the current FAT convergence head is green.

Head: 3b49206bfebaaeac6a84a3dcae63f3925d0e0bc7

Validated on this exact head:

  • Build ARSAS #2570: success
  • Full regression suite: 928 passed, 0 failed
  • Validate IO List Testing #1127: success
  • Validate SV evidence bundles #1575: success
  • portable win-x64 single-EXE publish: success
  • portable EXE smoke test: success
  • no open PR review threads

Field candidate artifact: ARSAS-win-x64-portable-single-exe from workflow run #2570 (contains ARSAS-1.6.35-win-x64-portable.exe).

Remaining gate is physical field validation only. Please test this exact artifact for: first FAT entry with no blank/black host; Engineering -> FAT transition without reconnect/SCL re-import; static DataSet row count without duplication; selected-IED context; live value/quality/timestamp; Value 1/Value 2 capture; Report Preview/export; and repeated Engineering <-> FAT navigation. Do not merge this staging PR until that field gate is confirmed.

Copy link
Copy Markdown
Owner Author

Cross-thread integration note: the field-accepted COMTRADE P1D.7 stack was consolidated and squash-merged to main as c3e2ac3ef6e6a3a49f47c5155a0ba4a7c00bcb6b. File-overlap audit found no FAT runtime/source overlap with the COMTRADE integration. This FAT PR remains intentionally unmerged pending its own field gate. Before final FAT integration, update/rebase against the new main and rerun its exact-head CI rather than merging the older base blindly.

Copy link
Copy Markdown
Owner Author

Cross-thread coordination note added to main: docs/WORKSTREAM_COORDINATION.md (commit b0ec4828755272c3331680098d0c95d9f467d84b). COMTRADE P1D.7 is already integrated in main via PR #300. Before FAT final landing, integrate the latest main, preserve the COMTRADE no-regression boundary documented there, rerun exact-head CI on the combined codebase, and repeat the FAT field gate. Do not merge this FAT stack from a stale pre-P1D.7 base.

Copy link
Copy Markdown
Owner Author

Final coordination update from the completed COMTRADE lane: latest main is now 3ad21a631d09a175a8030a0764fd880d0ee77560 (runtime COMTRADE integration at c3e2ac3e... plus durable coordination/lock cleanup). Before FAT final landing, integrate this main or newer, read root AGENTS.md §17 and docs/WORKSTREAM_COORDINATION.md, preserve accepted COMTRADE behavior, then rerun exact combined-head CI + the FAT field gate. Do not merge this stale stacked head directly over current main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant